package interfaces

import (
	"context"
	"task00/pkg/domain/account"
	"task00/pkg/domain/osmData"
)

type ServiceUseCase interface {
	Migrate(ctx context.Context) error
	//Account
	Registration(ctx context.Context, userId string, newAccount account.Registration) (*account.Info, error)
	Login(ctx context.Context, acc account.Login) (int64, error)
	GetAccount(ctx context.Context, userId string, id string) (*account.Info, error)
	DeleteAccount(ctx context.Context, userId string, id string) error

	//Region
	PutOsmData(ctx context.Context, userId string, id string, osm osmData.Region) (*osmData.Region, error)
	PostOsmData(ctx context.Context, id string, reg osmData.Region) (*osmData.Region, error)
	GetOsmData(ctx context.Context, userId string, id string) (*osmData.Region, error)
	DeleteOsmData(ctx context.Context, userId string, id string) error
}
